# Ensure that libLLVMTargetParser does not carry any static global initializer.
# ManagedStatic can be used to enable lazy-initialization of globals.
#
# HAS_WERROR_GLOBAL_CTORS and LLVM_HAS_NOGLOBAL_CTOR_MUTEX should have been set
# by llvm/lib/Support/CMakeLists.txt (which provides the required Support
# dependency).
if (HAS_WERROR_GLOBAL_CTORS AND NOT LLVM_HAS_NOGLOBAL_CTOR_MUTEX)
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=global-constructors")
endif()

add_llvm_component_library(LLVMTargetParser
  AArch64TargetParser.cpp
  ARMTargetParserCommon.cpp
  ARMTargetParser.cpp
  CSKYTargetParser.cpp
  Host.cpp
  LoongArchTargetParser.cpp
  RISCVTargetParser.cpp
  TargetParser.cpp
  Triple.cpp
  X86TargetParser.cpp

  ADDITIONAL_HEADER_DIRS
  Unix
  Windows

  LINK_COMPONENTS
  Support

  DEPENDS
  RISCVTargetParserTableGen
  )
